// 版权归 Epic Games, Inc. 所有。保留所有权利。

#include "LyraTabButtonBase.h"

#include "CommonLazyImage.h"
#include "UI/Common/LyraTabListWidgetBase.h"

#include UE_INLINE_GENERATED_CPP_BY_NAME(LyraTabButtonBase)

class UObject;
struct FSlateBrush;

/**
 * 从延迟对象设置图标实现
 * @param LazyObject 延迟对象指针
 */
void ULyraTabButtonBase::SetIconFromLazyObject(TSoftObjectPtr<UObject> LazyObject)
{
	// 如果图标控件存在，则设置延迟显示资源
	if (LazyImage_Icon)
	{
		LazyImage_Icon->SetBrushFromLazyDisplayAsset(LazyObject);
	}
}

/**
 * 设置图标画刷实现
 * @param Brush 画刷引用
 */
void ULyraTabButtonBase::SetIconBrush(const FSlateBrush& Brush)
{
	// 如果图标控件存在，则设置画刷
	if (LazyImage_Icon)
	{
		LazyImage_Icon->SetBrush(Brush);
	}
}

/**
 * 设置选项卡标签信息实现
 * @param TabLabelInfo 选项卡描述符
 */
void ULyraTabButtonBase::SetTabLabelInfo_Implementation(const FLyraTabDescriptor& TabLabelInfo)
{
	SetButtonText(TabLabelInfo.TabText); // 设置按钮文本
	SetIconBrush(TabLabelInfo.IconBrush); // 设置图标画刷
}